package Gestores.DtoObjects;

import Gestores.DaoInterfaces.CuentaPagoDAO;
import Gestores.DataBaseLink;
import Gestores.Entidades.EntidadAfiliado;
import Gestores.Entidades.EntidadCuentaPago;
import Gestores.Entidades.EntidadCuota;
import Gestores.NucleoBaseDatos;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

public class CuentaPagoDTO implements CuentaPagoDAO{
    
    private DataBaseLink conn;
    public CuentaPagoDTO(){
        conn=NucleoBaseDatos.getInstance();
    }

    @Override
    public ArrayList<Object> buscarPorId(int ci) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public ArrayList<Object> buscarPorDescripcion(String descripcion)throws Exception {
        if(descripcion.length()<20){
            ResultSet resultado = conn.executeSql("Call BuscarCuentaPagoNombre('" + descripcion + "');");
        return devolverListaCargada(resultado);
        }else
            throw new Exception("Error,en el nombre de la cuenta, debe ser menor a 20 caractares");
        
    }
    private ArrayList<Object> devolverListaCargada(ResultSet resultado) throws SQLException {
        ArrayList<Object> lista = new ArrayList<Object>();
        while (resultado.next()) {
            EntidadCuentaPago eCuenta = new EntidadCuentaPago(resultado.getInt(1),
                    resultado.getString(2));                  
            lista.add(eCuenta);
        }
        return lista;
    }

    @Override
    public void insertar(Object objeto) throws Exception {
        EntidadCuentaPago entidad=(EntidadCuentaPago)objeto;
        String comando="call InsertarCuentaPago('"+entidad.getDescripcion()+"');";
        conn.executeSql(comando);
    }

    @Override
    public void actualizar(Object primaryKey, Object objeto) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public void eliminacionLogica(Object objeto) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public void eliminacionFisica(Object objeto) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public ArrayList<Object> listarTabla() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
     
    public ArrayList<Object> listarT() throws Exception {
       
        String comando="select * from Cuenta_Pago;";
       ResultSet resultado=  conn.executeSql(comando);
       ArrayList<Object>a = new ArrayList<Object>() ;
               int i=0;
       while(resultado.next()){
           EntidadCuentaPago cp= new EntidadCuentaPago(resultado.getInt(1), resultado.getString(2));
           a.add(cp);
           
       }
       conn.CerrarStatement();
       return a;
    }
}
